Bookmarking media programs for subsequent viewing

ABSTRACT

A method, system, apparatus, and computer program product provide the ability to bookmark a media program for subsequent viewing. A first interface is displayed and identifies a first media program. Via the first interface, a user requests that the first media program be recorded as a bookmark in a list of maintained bookmarks. The list of bookmarks is displayed. A user selects one of the bookmarks from the list and in response, the first media program is displayed to the first viewer.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. Section 119(e) ofthe following co-pending and commonly-assigned U.S. provisional patentapplication(s), which is/are incorporated by reference herein:

Provisional Application Ser. No. 61/393,846, filed Oct. 15, 2010, byEugene Chuan-Huai Wei, entitled “METHOD AND APPARATUS FOR RECOMMENDINGMEDIA PROGRAMS,” which is incorporated by reference in its entirety forall purposes.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to systems and methods for providing mediaprograms for presentation to users, and in particular to a system andmethod for bookmarking media programs for subsequent/later viewing atthe user's discretion.

2. Description of the Related Art

The dissemination and playback of media programs has undergonesubstantial changes in the past decade. Previously, media programs(which may include audio, video, or both) were disseminated either byanalog broadcast (conventional, satellite, or cable) or by disseminationof films to movie theaters.

These traditional dissemination and playback means remain in use afterthe advent of digital technology. However, digital technologies have hada profound effect on the dissemination and playback of media programs.

First, digital technology permitted the use of digital video recorders(DVRs). DVRs, while similar in function to standard analog videocassette recorders (VCRs), provide a number of additional usefulfunctions including live pause, the ability to record one program whileplaying back another, and the integration of the electronic programguides with DVR functionality (so that the recordation of media programscould be scheduled far in advance).

Second, digital technology also permitted the dissemination and playbackof media programs via the Internet, and with improved signal processingand more and more households with high-speed Internet access (e.g. DSL,fiber, and/or satellite). These methods of dissemination and playbackhave become competitive with traditional means. Dissemination of mediaprograms via the Internet may occur either by simple downloading,progressive downloading or streaming.

Simple downloading, progressive downloading, and streaming are describedin copending provisional patent application Ser. Nos. 61/386,913,entitled “METHOD AND APPARATUS FOR PROVISING DIRECTED ADVERTISING BASEDON USER PREFERENCES,” and 61/392,898, entitled “METHOD AND APPARATUS FORRECOMMENDING MEDIA PROGRAMS BASED ON CORRELATED USER FEEDBACK,”incorporated by reference above.

The foregoing technologies permit a broad spectrum of media programs tobe made available to the user for immediate viewing. One of thechallenges in providing such a broad array of media programs is that itis difficult for the user to find programs of interest from among themany programs available. Interfaces can be provided that place mediaprograms into different categories that can be searched by the user,however such interfaces are only useful if the user already has an ideaabout what kind of media program they are interested in. Offbeat,unusual, or difficult to categorize media programs, for example, wouldbe difficult to find with such interfaces.

What is needed is a system and method for providing suchrecommendations. The present invention satisfies this need.

SUMMARY OF THE INVENTION

Unlike broadcast television, where advertising revenue depends on thegeneralized popularity of the television show during which theadvertisement is shown, the length of the advertisement, and perhaps thedaypart, advertising in a video on demand context is often based on “adimpressions,” which may be defined as the number of viewings of theadvertisement or the number of times viewers have expressed interest inthe advertisement presented (e.g. by selecting the advertisement forfurther information). Since the number of “ad impressions” varies withthe number of viewers actually watching a media program, it is possiblethat the media program provider may have provided all of the contractedadvertising impressions and still have additional advertising timeavailable during the presentation of media programs. Public serviceannouncements (PSAs) may be played during such intervals, but PSAs donot generate revenue.

Described below is a system and method in which recommendations to viewother media programs are substituted for reduced or zero revenue valueadvertisements such as PSAs, bonus advertisements (provided gratis afterthe contracted for ad impressions have been provided). In oneembodiment, the decision to substitute media program recommendations ismade according to a dynamic real time or near real time assessment of adimpression contractual obligations, and ad impression fulfillment, witha view to maximizing overall advertising revenue.

The media program recommendations may be analogous to a movie trailerand are designed to generate a visceral and emotional interest on thepart of the user, something that a static image and text cannotaccomplish in the same way. The media program provider may produce (insome cases, with the help of the source of the media program beingadvertised) short video trailers for shows and movies presented by themedia program provider that are typically 30 to 80 seconds long.

These recommendations typically appear in the last advertising pod(break) of a longform media program (e.g. episodes, movies), but mayalso appear in short form media programs (e.g. one half hour mediaprograms). The presentation of the advertisements in the last pod ispreferred because experience has shown this placement to be mosteffective, presumably because this is the point at which most users arenow considering which media program (if any) they will watch next.

Further, much of the value of a media program recommendation depends onthe context in which the recommendation is made. Users may be providedwith an interface that allows them to ask for a recommended program, buteven when such a service is provided, it is often underutilized, sincethe user is apt to seek out such recommendations only when they cannotthink of a media program of interest on their own, and experience hasshown that this is not often. As a result, recommendation services aretypically underutilized. Experience has also shown that when given inthe proper context (including when the recommendations are presented andthe options available to the user to act on those recommendations),recommendation services can increase viewership by an order of magnitudeor more.

The Applicants have discovered the non-intuitive result that theincrease in viewership offered by contextually convenient recommendationservices are significant enough to offset the cost of presenting arecommendation in place of a paid advertisement that may otherwise beplayed during the media program, essentially trading greater revenue permedia program played for greater revenue for more media programs viewed.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the drawings in which like reference numbers representcorresponding parts throughout:

FIG. 1 is a diagram illustrating an exemplary media program system usedin accordance with one or more embodiments of the invention;

FIG. 2 illustrates an exemplary processing system that could be used toimplement elements of one or more embodiments of the present invention;

FIG. 3 is a diagram illustrating a first embodiment of a contentdelivery subsystem (CDS) and top-level operations that can be used tooffer and deliver media programs for selection and presentation to theuser in accordance with one or more embodiments of the invention;

FIG. 4 is a diagram illustrating the transmission of media programsaccording to a live streaming protocol in accordance with one or moreembodiments of the invention;

FIG. 5 is a block diagram presenting exemplary operations that can beused to recommend media programs to users in accordance with one or moreembodiments of the invention;

FIG. 6 is a diagram presenting exemplary method steps that can be usedto identify second media programs of interest in accordance with one ormore embodiments of the invention;

FIG. 7 is a diagram of an exemplary preview interface in accordance withone or more embodiments of the invention;

FIG. 8 is a diagram of an exemplary preview interface showing an inputarea where the user can indicate that they are interested in therecommended media program in accordance with one or more embodiments ofthe invention;

FIG. 9 is a diagram of an exemplary preview interface having a controlthat bookmarks the recommended media program for viewing in the futurein accordance with one or more embodiments of the invention;

FIG. 10 is a diagram of an exemplary preview interface where the user isprovided with an indication of a saved bookmark in accordance with oneor more embodiments of the invention;

FIG. 11 is a diagram of an exemplary preview interface having a controlto log in as a user in accordance with one or more embodiments of theinvention;

FIG. 12 is a diagram illustrating an exemplary preview interface if theuser has indicated that they are not interested in watching therecommended media program in accordance with one or more embodiments ofthe invention;

FIGS. 13A and 13B present preview interfaces after the mediaclip/trailer for the recommended media program has been shown inaccordance with one or more embodiments of the invention;

FIG. 14 presents the interface once the user has selected the bookmarkoption in accordance with one or more embodiments of the invention; and

FIG. 15 is a flowchart illustrating the logical method for bookmarking amedia program for subsequent viewing in accordance with one or moreembodiments of the invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

In the following description, reference is made to the accompanyingdrawings which form a part hereof, and which is shown, by way ofillustration, several embodiments of the present invention. It isunderstood that other embodiments may be utilized and structural changesmay be made without departing from the scope of the present invention.

In the following description, reference is made to the accompanyingdrawings which form a part hereof, and which is shown, by way ofillustration, several embodiments of the present invention. It isunderstood that other embodiments may be utilized and structural changesmay be made without departing from the scope of the present invention.

FIG. 1 is a diagram illustrating an exemplary media program system 100.In the illustrated embodiment, the system 100 may comprise one or moremedia program sources 120A, 120B, communicatively coupled to acommunication network 104 such as the Internet and each having one ormore source video servers 122A, 122B communicatively coupled to one ormore source media program databases 124A, 124B. The media program system100 further comprises a media program provider 110, communicativelycoupled to the communication network 104, and having one or moreprovider video servers 112 and one or more provider databases 114. Inone embodiment, the media program provider 110 is a video-on-demandand/or streaming media program provider.

The media program system 100 transmits media programs to a first userdevice 102A such as a computer or a second user device 102B such as acellphone (hereinafter alternatively referred to as user device(s) 120).This transmission may be direct from the media program provider 110, orthe media program provider 110 may operate as a portal, providing aninterface to the media programs available from the media program sources120A and 120B, but not the media program itself (which is insteadprovided by the media program source(s) 120).

In the first case, the media program provider 110 licenses mediaprograms from the media program sources 120 (such as www.fox.com orwww.nbc.com), and metadata for such programs is also typically providedto the media program provider 110 from the media program source 120 aswell. Such metadata can be retrieved by the media program provider'sdatabase 114 for use. If supplementary metadata is required, it can beobtained from a metadata source 130 independent from the media programprovider 110 and the media program source 120, as described furtherbelow.

In the second case, the media programs are streamed to the user device102 directly from the servers of the media program source 120. When themedia program is streamed directly from the media program source 120, itis often the case that the metadata provided by the media program source120 is insufficient. In such cases, supplementary metadata may beobtained from independent metadata source 130 (such as www.tv.com orwww.imdb.com) or other third party sources. In this circumstance, therole of the media program provider 110 is that of a portal that providesthe user 132 a list of available media programs and an interface tosearch to find such programs and to view them.

Media programs and metadata may be obtained via a communication network104 such as the Internet, or through auxiliary (and/or dedicated)communication links 134). Such information may be obtained bywebcrawling (for example, using a program or automated script thatbrowses the World Wide Web in a methodical, automated manner).

Using the user devices 102, remote users 132 can communicate with themedia program provider 110 using the communication network 104, toobtain media programs (including video-on-demand and/or streaming videoservices) and to search the provider media program database 114 to findmedia programs of interest.

The media program system 100 may also comprise one or more advertisementproviders 140, which supply advertisements that are replayed inconnection with the media programs provided by the media programprovider 110 or media program sources 120. In the illustratedembodiment, the advertisement provider 140 includes an advertisementprovider server 142 communicatively coupled to an associated andcommunicatively coupled advertisement provider database 144.

Advertisements may be supplied from the advertisement provider 140 tothe media program provider 110 via the Internet 104, a dedicated link146, or by physical exchange of a memory storage device having theadvertisement. Such advertisements can be provided to and stored by themedia program provider 110 and streamed or downloaded along with themedia program to the user device(s) 102 at the appropriate time.

In one embodiment, the advertisements are integrated with the streamedor downloaded video from the media program provider 110. In anotherembodiment, the advertisements are not integrated with the mediaprogram, but are instead transmitted to the user devices 102 separatelyfrom the media program, and replayed at the appropriate time usingindices that indicate when each advertisement should be presented. Forexample, advertisements can be indexed and streamed or downloaded to theuser devices 102 (from the media program provider 110 or theadvertisement provider 140), and such advertisements can be played backto the user 132 at times indicated by corresponding indices in the mediaprogram.

FIG. 2 illustrates an exemplary processing system 202 that could be usedto implement elements of the present invention, including the userdevices 102, servers 112, 122, and 142 and the databases 114, 124, and144. The computer 202 comprises a general purpose hardware processor204A and/or a special purpose hardware processor 204B (hereinafteralternatively collectively referred to as processor 204) and a memory206, such as random access memory (RAM). The computer 202 may be coupledto other devices, including input/output (I/O) devices such as akeyboard 214, a mouse device 216 and a printer 228.

In one embodiment, the computer 202 operates by the general purposeprocessor 204A performing instructions defined by the computer program210 under control of an operating system 208. The computer program 210and/or the operating system 208 may be stored in the memory 206 and mayinterface with the user 132 and/or other devices to accept input andcommands and, based on such input and commands and the instructionsdefined by the computer program 210 and operating system 208 to provideoutput and results.

Output/results may be presented on display 222 or provided to anotherdevice for presentation or further processing or action. Typically, thedisplay 222 comprises a plurality of picture elements (pixels) thatchange state to collectively present an image to the user 132. Forexample, the display 222 may comprise a liquid crystal display (LCD)having a plurality of separately addressable pixels, each with a liquidcrystal that changes to an opaque or translucent state to form a part ofthe image on the display in response to the data or informationgenerated by the processor 204 from the application of the instructionsof the computer program 210 and/or operating system 208 to the input andcommands. Similarly, plasma displays include a pixel having threeseparate subpixel cells, each with a different color phosphor. Thecolors blend together to create the color presented in the pixel. Pulsesof current flowing through the cells are varied according to the datagenerated by the processor from the application of the instructions ofthe computer program and/or operating system 208 in response to inputand commands, changing the intensity of the light provided by the pixel.Also, similarly, cathode ray tube (CRT) displays include a plurality ofpixels, each with each pixel having subpixels typically represented bydots or lines from an aperture grille. Each dot or line includes aphosphor coating that glows when struck by electrons from an electrongun. In response to the data generated by the processor from theapplication of instructions of the computer program and/or operatingsystem 208, and in response to input and commands, the electrons emittedby the electron gun are steered at the dots or lines, thus changing thestate of the associated pixel by causing the phosphor coating of thatdot or line to glow.

The image may be provided through a graphical user interface (GUI)module 218A. Although the GUI module 218A is depicted as a separatemodule, the instructions performing the GUI functions can be resident ordistributed in the operating system 208, the computer program 210, orimplemented with special purpose memory and processors.

Some or all of the operations performed by the computer 202 according tothe computer program 110 instructions may be implemented in a specialpurpose processor 204B. In this embodiment, some or all of the computerprogram 210 instructions may be implemented via firmware instructionsstored in a read only memory (ROM), a programmable read only memory(PROM) or flash memory within the special purpose processor 204B or inmemory 206. The special purpose processor 204B may also be hardwiredthrough circuit design to perform some or all of the operations toimplement the present invention. Further, the special purpose processor204B may be a hybrid processor, which includes dedicated circuitry forperforming a subset of functions, and other circuits for performing moregeneral functions such as responding to computer program instructions.In one embodiment, the special purpose processor is an applicationspecific integrated circuit (ASIC).

The computer 202 may also implement a compiler 212 which allows anapplication program 210 written in a programming language such as COBOL,C++, FORTRAN, or other language to be translated into processor 204readable code. After completion, the application or computer program 210accesses and manipulates data accepted from I/O devices and stored inthe memory 206 of the computer 202 using the relationships and logicthat was generated using the compiler 212.

The computer 202 also optionally comprises an external communicationdevice such as a modem, satellite link, Ethernet card, or other devicefor accepting input from and providing output to other computers.

In one embodiment, instructions implementing the operating system 208,the computer program 210, and the compiler 212 are tangibly embodied ina computer-readable medium, e.g., data storage device 220, which couldinclude one or more fixed or removable data storage devices, such as azip drive, floppy disc drive 224, hard drive, CD-ROM drive, tape drive,DVD, etc. Further, the operating system 208 and the computer program 210are comprised of computer program instructions which, when accessed,read and executed by the computer 202, causes the computer 202 toperform the steps necessary to implement and/or use the presentinvention, or to load the program of instructions into a memory, thuscreating a special purpose data structure causing the computer tooperate as a specially programmed computer executing the method stepsdescribed herein. Computer program 210 and/or operating instructions mayalso be tangibly embodied in memory 206 and/or data communicationdevices 230, thereby making a computer program product or article ofmanufacture according to the invention. As such, the terms “article ofmanufacture,” “program storage device” and “computer program product” asused herein are intended to encompass a computer program accessible fromany computer readable device or media.

Of course, those skilled in the art will recognize that any combinationof the above components, or any number of different components,peripherals, and other devices, may be used with the computer 202.

Although the term “user computer” or user device is referred to herein,it is understood that a user computer or computer may include portabledevices such as cellphones, portable MP3 players, video game consoles,notebook computers, pocket computers, personal data assistants (PDAs) orany other device with suitable processing, communication, andinput/output capability.

FIG. 3 is a diagram illustrating a first embodiment of a contentdelivery subsystem (CDS) 300 and top-level operations that can be usedto offer and deliver media programs for selection and presentation tothe user 132. In the illustrated embodiment, the content deliverysubsystem 300 includes the user device 102, a media program provider110, and an advertisement provider 140.

In the illustrated embodiment, the media program provider 110 comprisesa content management service 310, an advertisement service 316, a feedservice 306, a content selector 308, and a guide service 318 whichincludes a recommendation engine 320. The CMS 310 stores data indatabase 322, including metadata regarding available media programs anduser data.

In one embodiment, the recommendation engine 320 of the guide service318 transmits a feedback request to the user device 102. This requestmay be transmitted after playback of the media program for whichfeedback is requested, or at another time. A request for feedbackregarding a media program may also occur in response to provision of aguide service. For example, if a media program guide is provided to theuser device 102, the media programs presented therein may include aninterface that allows the user 132 to indicate whether they have viewedthat media program, and if so, whether they liked the media program orhow much they liked the media program.

The user then provides feedback regarding the media program(s) andtransmits the feedback or opinion data to the recommendation engine 320.The recommendation engine receives the opinion data and stores it in thedatabase 322 via the CMS 322 for later use as described below.

The same user 132, or another user 132, may then transmit a request fora recommendation to the recommendation engine 320. Using data retrievedfrom the database 322, the recommendation engine 320 generates one ormore recommended media programs, and transmits information from whichthe user device 102 may gain access to those recommended media programsto the user device 102 for presentation by the user interface module302. Further details regarding these operations are presented below.

When the user 132 selects a media program using the user device 102, amessage is transmitted from the user device 102 to the media programprovider 110 requesting the media program identifier (PID) of theselected media program.

The feed service 306 receives the request, and using informationobtained from secure storage 312 or database 322 via the contentmanagement service 310, the feed service 306 determines the PID for theselected media program and transmits the PID to the user device 102. Theuser device transmits this PID and a user ID to the content selector 308of the media program provider 110. The content selector 308 forwards theinformation to the content management service 310, which uses theadvertisement service 318 to select advertisements appropriate for theuser and selected media program, using information stored in securestorage 312. This may be accomplished as described in co-pending patentapplication Ser. No. 12/787,679, entitled “METHOD AND APPARATUS FORRAPID AND SCALEABLE DIRECTED ADVERTISING SERVICE,” by Wing Chit Mak,filed May 26, 2010, which application is hereby incorporated byreference herein. The content management service 310 forwards thisinformation to the content selector 308, which transmits informationfrom which the user device 102 may obtain the selected media programfrom the media server 114, as well as advertisements from theadvertising provider 140. In the illustrated embodiment, thisinformation includes the address (e.g. URL) where the desired mediaprogram can be obtained from the media server 114. The user device 102transmits a media program request to the media server 114 at a specifiedaddress. The media server 114 retrieves the media program from securestorage, and transmits the media program to the user device 102. Theuser device 102 may also request advertisements from the advertisingprovider 140 and receive them as well.

Although the advertisement provider 140 and media server 114 isillustrated as a separate architectural entity than the media programprovider 110, the advertisement provider 140 may be integrated with themedia program provider 110 (that is, the media program provider may alsoprovide the advertisements). The CDS 300 provides a means to providemedia programs and advertisements across a plurality of distributionnetworks, which may include www.hulu.com, www.imdb.com, www.aol.com orwww.msn.com.

Metadata related to media program and advertisement content as well asstreaming information is stored in the content delivery system 300 indatabases 312 and 322, as is data describing where the media programsand advertisements may be found within the CDS 300.

The user device 102 may include an interface module 302 and a mediaprogram player 304. The interface module 302 includes instructionsperformed by the user device 102 that are used to present informationand media programs to the user 132 and to accept user input, includingcommands. Exemplary user devices 102 are a desktop computer, a laptopcomputer, or a portable device such as an IPOD, IPHONE, IPAD, a portabletelephone, or a PALM device.

FIG. 4 is a diagram illustrating the transmission of media programsaccording to a live streaming protocol. Fundamentally, this protocol issimilar to the protocol illustrated in FIG. 3, except that the when theuser device 102 requests the media program, it is provided with a“playlist” of small segments or “chunks” of the media program. The userdevice 102 uses the playlist to request transmission of each chunk ofthe media program in order, and when each chunk is received, it isprocessed and assembled into the media program presented to the user132.

As shown in FIG. 4, the user device 102 transmits a request for the PIDof the media program to the feed service 306. The request typicallycomprises a user ID or a proxy thereof, as well as some identificationfor the media program. The feed service 306 receives the request, andobtains the PID of the requested media program from the CMS 310, usinginformation obtained from secure storage 312 and contentmetadata/streaming information database. The PID is then transmitted tothe user device 102. The user device then transmits a media programrequest with the PID to the content selector 308.

In this embodiment, the media program is broken up into a plurality ofsegments or chunks that can be transmitted to the user device 102 uponrequest from the user device 102. Which segments to request and theorder to request them is determined by a segment playlist that istransmitted from the media program provider 110 to the user device 102.

The live streaming protocol includes the transmission of a segmentplaylist having addresses or URIs to the media program segments to themedia program player 304. Since the media program player 304 has theinformation necessary to retrieve any segment (and hence, any frame)using the addresses or URIs in the segment playlist, the user interfacemodule 302 implementing the interface 400, responds to the media programnavigation commands by determining segment having the media programframes complying with the navigation request, requesting such segments(if they have not already been received and buffered), and presentingthe frames from such segments as indicated above.

Regardless of the technique used to transmit media program informationto the media program player 304 one of the challenges in offering a widevariety of media programs to users 132 is in presenting such users 132with information that allow the user 132 to find and select mediaprograms of interest. One approach is to provide the user with a programguide in which media programs are suitably categorized (e.g. by type,content, actors or any number of factors). This may allow the user tofind media programs of interest, but are of little use in directing theuser to media programs of which they know nothing about, but are stilllikely to enjoy.

One of the techniques that can be used to find media programs ofinterest for the user is to use the user interface module 302 to presentrecommended media programs to the user. Such recommendations can beprovided in response to a user 132 request for such recommendations, orwithout a user request. For example, the user interface module 302 mayrecommend media programs of interest to the user 132 when the user firstaccesses the content delivery system 300, when the user 132 is browsingor querying the database 322 to find media programs of interest, whenthe media program player 304 is playing a media program, or when themedia program player 304 has, or is about to complete, playback of amedia program.

FIG. 5 is a block diagram presenting exemplary operations that can beused to recommend media programs to users. In block 502, a first mediaprogram is provided to the user device 102 for playing. In block 504, asecond media program that is of potential interest to the first vieweris identified.

FIG. 6 is a diagram presenting exemplary method steps that can be usedidentify second media programs of interest. In block 604, opinion datais accepted from one or more of the users 132 in a set of users. Theopinion data may include, for example, any combination of dataindicating that the user 132 has watched more than a thresholdpercentage of the media program, that the user 132 has expressly ratedthe media program, that the user 132 has subscribed to the media programor a series of the media program, or that the user 132 has queued themedia program for recording or later playback. In one embodiment, theopinion (or feedback) data may be logical data (chosen from a list oflogical alternatives) or boolean data (one of two values such as “yes”or “no” or “1” or “0”).

As shown in block 602, the user 132 may be prompted to provide suchinformation, and this prompt may be provided after the user has viewedthe media program (e.g. at the end of media program playback or inresponse to an indication that the user has already seen the mediaprogram and does not wish to see it again), during viewing of the mediaprogram, or before viewing of the media program. In some cases, theopinion data is inherent to the viewing of the program (e.g. the user ispresumed to like the media program if they have watched it for a minimumtime period) or other activity (e.g. queuing or subscribing to a mediaprogram). U.S. Provisional Patent Application No. 61/392,898 describestechniques that can be used to determine the similarity or relatednessof two media programs for purposes of recommending similar programs.Using those techniques, a measure of the implied similarity of the firstmedia program (i) and the second media program (j) is generated, asshown in block 606. Finally, a recommended media program is generatedusing the measure of implied similarity, as shown in block 608.

In one embodiment, the foregoing uses a top-n item collaborativefiltering algorithm to make recommendations. The service identifies arelationship between a recommended show and the show or content thatprompts the recommendation. To find the correlation between two items,we use Conditional Probability-Based

${{{Similarity}\mspace{14mu}{where}\text{:}\mspace{14mu} w_{ij}} = \frac{{cocount}( {i,j} )}{\sqrt{{{count}(i)}*{{count}(i)}}}},$

Count(i)=the count of all users who watched item i,

Count(j)=the count of all users who watched item j,

Cocount(i,j)=the count of all users who watched both item i and item j.

To simplify computations, only the top 30 related items for eachrecommended show and recommendations are prompted off of no more thanthese 30 media programs (alternately referred to as ‘source shows’).Once the 30 source shows are identified, the media program provider mayreview the list to remove any unreasonable correlations.

One example of this calculation would be the relationship between“Sanctuary” (as the recommended media program) and “The Dresden Files”(as the source media program), where their correlation is 0.154. Thecorrelation between “Firefly” (as the recommended show) and “The DresdenFiles” (the source show) is 0.09. The greater value (0.154) means thatthere is greater correlation between “The Dresden Files” and“Sanctuary.” With all other conditions being equal, this means thatsomeone watching “The Dresden Files” is more likely to be served the“Firefly” as the recommended show. However, the recommendation engine320 will also account for the user's current viewership and preferencesin ultimately identifying a recommended show. A show may be recommendedto a user based on any of the following conditions:

1. The show currently being watched;

2. A show the user has watched in the past;

3. A show the user has rated highly;

4. A show the user has subscribed to; and

5. A show the user has added to their queue.

Where possible, the media program provider 110 may consider theseconditions for both logged in as well as anonymous users (e.g., usingcookies). Different conditions may have different weights. For example,the media program a user is currently watching (which is what is mosttop-of-mind for the user who is about to receive a media programrecommendation) is weighted more heavily than a media program the userhas subscribed to at some point in the past. When assessing the weightsof conditions for media programs that were either watched or added to auser's queue, the total number of media programs watched or added toqueue may be taken into consideration. The media program recommendationsengine may also incorporate other relevant users behavior (e.g. searchhistory, tag history, etc.) to broaden the contextual relevance of therecommendations that are made.

The recommendations engine 320 matches the individual user's behavioralconditions with the correlation between two items (in this case, TVshows) and then calculates how likely the user is to be interested ineach media program recommendation candidate.

In the previous step, the possible recommendation candidates for a userbased on his/her preferences and/or behavior were determined. Next, therecommendations engine 320 decides which individual media programrecommendations to provide to the user. The following are the otherconditions that are accounted for before a candidate media program isrecommended. Any of the following will eliminate a media programrecommendation candidate from being served to the user:

-   -   1. If the user already saw this media program recommendation        candidate within the past 7 days;    -   2. If the user has already bookmarked the show associated with        the media program recommendation candidate;    -   3. If the user had been exposed to the media program        recommendation candidate and indicated that he/she is not        interested in that show;    -   4. If the user has rated the show (which may be served as a        media program recommendation candidate) with a rating of less        than 3 stars; and    -   5. If the user is already aware of the show (which may be served        as a media program recommendation candidate) and has either        watched several episodes, or already rated it, added it to their        queue, or subscribed to it.

Since the media program recommendations are served in ad breaks, the adserver 316 is used to deliver the ads. At the same time, therecommendations engine 320 chooses which shows to recommend to whichusers and for what reasons. For logged in users, the recommendationengine 320 may recommend any show based on the user's viewing habits andcontent preferences. For users not logged in, the recommended show maybe based on a show the user is, or has watched, in their current session(often the show they are currently watching).

One or more media program recommendations are selected from the mediaprograms that pass the above conditions, and may be provided to the useras described below.

In block 506, a preview interface for the recommended media program(s)is substituted for an advertisement during an advertisement break. Thepreview interface identifies one or more recommended programs to theuser, and allows the user to select one or more of those recommendedmedia programs for further viewing, as described below.

FIG. 7 is a diagram of an exemplary preview interface 702. In thisembodiment, the preview interface addresses a user who has logged in,and is personalized to that user 132. The user 132 is identified by name710 and in this interface, is informed that a recommended media programexists. In the illustrated embodiment, the interface 702 also indicatesthe title of the recommended media program (in this case, “StoneUndercover”) in area 714, and a statistic indicating why the mediaprogram is recommended in area 712.

Messages to the user 132 may include:

1. “Did you know that X % of fans of show A also enjoy this show B [therecommended show]?”

This is based on our analysis of all users who have assigned a rating toboth show A and show B.

2. “Did you know that fans of show A are X times more likely to watchthis show B [the recommended show]?”

This is based on comparing the percent of all users who watch show B tothe percent of fans of show A (i.e. users that assigned a high userrating to show A) who watch show B.

The preview interface 702 may also include an area 706 such that ifselected, indicates user 132 information such as the placement ofbookmarks (discussed further below), an area 706 which when selected,can be used to view the user profile, and an area 708, which, whenselected, can be used to view which media programs the user has queuedfor future viewing.

In one embodiment, only one recommended media program is presented tothe user 132. In this embodiment, the showboat or trailer for therecommended media program begins playing, and the user 132 is given theopportunity to express an interest in the media program.

FIG. 8 is a diagram of an exemplary preview interface 702 showing theplayback area 802, where a trailer, advertisement, or media clip of therecommended media program is played, and an input area 804 is providedwhere the user 132 can indicate that they are interested in therecommended media program. If user has expressed interest in the mediaprogram, the indication is accepted and processing passes to blocks 510and 516-520 of FIG. 5.

In block 516, a reference to the recommended media program is saved forlater playback. Playback may be deferred until after the current mediaprogram has completed playback, may begin as soon as the current mediaprogram has completed playback, or may be bookmarked for later playbackas described further below. In block 518, the databases 322 are updatedto reflect the user input.

FIG. 9 is a diagram of an exemplary preview interface 702 having acontrol 902 that bookmarks the recommended media program for viewing inthe future. If the user 132 selects this control, the bookmark is saved,and the user is provided with an indication of the saved bookmark, asshown in item 1002 of FIG. 10.

If the user has not logged in, they will need to do so before thebookmark can be saved. An interface 1102 for doing so is presented inFIG. 11. Alternatively, cookies may be used to identify bookmarkedinformation for a particular browser/computer.

Returning to FIG. 5, if the user has expressed no interest in viewingthe recommended media program (either by expressly indicating as such,or failing to respond to a prompt within a designated period of time),the user may be provided an interface to indicate why they were notinterested in the recommended media program.

FIG. 12 is a diagram illustrating an exemplary preview interface 702 ifthe user has indicated that they are not interested in watching therecommended media program. In this embodiment, the preview interface 702includes an input interface 1202 in which the user may provide feedbackregarding the recommended media program, for example, to indicate whythey were not interested in the recommended media program. In theillustrated embodiment, three choices are provided (1) the user 132 hasalready seen the media program, (2) the user 132 is not interested, and(3) the user is not in the mood to select the media program in the nearfuture, but may want to do so at a future time. The exemplary inputinterface 1202 also includes a submit button and a countdown timerindicating how much time the user 132 has left to enter the informationin the input interface 1202. The accepted information is stored in thedatabase for future use recommendations, both for this user and forother users, as shown in blocks 512 and 514.

FIG. 13A presents the preview interface 702 after the media clip/trailerfor the recommended media program has been shown. The interface includesa title of the recommended media program or series 1302 a control forbookmarking the show 1304 and a control for immediately beginningplayback of the show 1306.

FIG. 13B illustrates the preview interface 702 used as an end card thatis used only for shows that are available through an enhancedsubscription service of a media program provider (e.g., Hulu™ Plus™available from the Hulu™ website). Instead of the “Check it out now”button 1306, the interface 1308 offers a “Try Hulu Plus” button 1310 toencourage those users (that are either not logged in or determined to beclassic-only subscribers (e.g., users that are not subscribed to apay-based or enhanced service) to consider subscribing to one or morehigher levels of service. In addition, the interface 1308 may indicatethe availability of a particular media program via an enhancedsubscription service (e.g., “only available on the enhanced service”).

FIG. 14 presents the interface once the user has selected the bookmarkoption. The elements 1402 and 1404 indicate that the selection has beenbookmarked, and control 1406 permits the user 132 to view the mediaprogram immediately.

User Interface Summary

The foregoing user interface includes the following elements:

1. Introductory title card (e.g. FIG. 7) explaining why it is thoughtthat the user will enjoy the recommended show. If the user is logged in,these title cards are personalized (“Eugene, did you know that viewersof 30 Rock are 10 times more likely to also enjoy Peep Show?”). If theuser is not logged in, we still explain the relevance of the followingrecommendation using contextual information such as the title of thecurrent show they're watching (“79% of viewers who enjoy [title of showthey just watched] also watch the following show.”)

2. Video montage (FIGS. 8-12) from the show. The goal of this section,which makes up the majority of the duration of the media programrecommendation, is to introduce the general storyline, style, and moodof the program/title. The goal is not to spoil the show for people butto generate some intrigue and suspense. Use of interstitial text cardsto establish the narrative flow of the video or to post noteworthycritical acclaim is often applied when available. Using music from theshow is effective at conveying mood. The overall goal is similar to thatof a movie trailer, though establishing the storyline of an entire TVseries is more complex than simply establishing that of a single movie.

3. Users can take immediate action on the recommended programadvertisement. Since the media program recommendations are served asads, a message is displayed as the video montage begins, which asks (inthe upper right corner of the player) “Is this recommendationinteresting to you? Yes/No”. A user who answers “Yes” is then offeredthe option to “Bookmark this recommendation” for later viewing. A userwho answers “No” is then asked a multiple choice question as to why theyare not interested. None of these interactions are required. The mediaprogram ad will continue to play regardless. But for those users whoindicate they are not interested, the same media program ad may never beserved to them again. Additionally, valuable insights may be gainedshould the user explain why they are not interested. In either case, theuser's reaction may be factored into future media program ads they maybe shown.

Finally, a user can also click on the media program ad itself and betaken to the show page of the promoted show at any time.

4. End card (FIGS. 13 and 14). The end card does two things: 1) Itestablishes for the end user what content from the show is available:how many seasons, and which ones; and 2) It offers the user options totake action on the recommendation they've just seen. The user has twooptions/buttons in the end card: 1) to go “Check it [the show] out now”which immediately takes the user to the appropriate show page; and 2) to“Bookmark this Show” for later viewing. The latter option will drop theshow into a new list of shows that may be tracked in the user's profilecalled “My Bookmarks.”

In one or more embodiments of the invention, the “My Bookmarks” area mayinclude a queue or listing of shows that have been bookmarked by theuser. Shows may be bookmarked using the recommended clip as describedabove. Alternatively, shows may be bookmarked by the user searching forshows, receiving requests to bookmark the shows from third parties(e.g., friends in a social networking application), by the user via aperipheral device (e.g., cellular device), by the user via a socialnetworking application (e.g., via a Facebook™ application), viaemail/SMS/text message from the user, etc. Thus, a user may bookmark ashow in a variety of manners and such bookmarks may be used to identifya show that the user is interested in but didn't have time to watchright away. Such bookmarks may be used to automatically link directly toa playable version of the show when the user desires. Bookmarks may besorted in a variety of manners including: alphabetically, highest ratedby other uses, date added as a bookmark, date of release of show, dateof addition of the show to a content library, highest rated based onuser's profile, etc.

Bookmark Workflow

FIG. 15 is a flowchart illustrating the logical method for bookmarking amedia program for subsequent viewing in accordance with one or moreembodiments of the invention.

At step 1502, a first interface is displayed (e.g., on a computerdisplay, cellular phone, via a social networking application, etc.) thatidentifies a first media program. The first interface may be part of arecommended media program advertisement trailer (e.g., that is displayedduring an advertising break). Such a trailer may be displayed based oninformation regarding the first viewer. Alternatively, the firstinterface may be provided via a search result interface that displaysresults for a search of media programs conducted by the user. In yetanother alternative embodiment, the first interface may be displayednext to any object at a “show-level” (e.g., in browse sections of awebsite, within search results, showpages, recommendation carousels,trailer advertisements, etc.) or “movie-level” details. Basically,anywhere a thumbnail for a media program (e.g., show or movie) (withrelated information about media program) is displayed, a user may havethe option to bookmark that media program for later consideration.

A step 1504, input is accepted from a first viewer, via the firstinterface, requesting that the first media program be recorded as abookmark in a list of maintained bookmarks. Such a list identifies oneor more media programs (that have been added as bookmarks by the user)for subsequent viewing. Further, the list of bookmarks may be maintainedlocally (e.g., on a client device/workstation, player 304, etc.) or on aserver application (e.g., server 110) across the network from the userdevice/media program player application 304. Further, as used herein,the mechanism in which the bookmarks are stored may be referred to as abookmark maintenance engine. Such a bookmark maintenance engine may bepart of the client device 102, the media program provider 110, or adifferent device (e.g., advertising provider 140 or external entities314).

At step 1506, a list of the maintained bookmarks is displayed. Such alist may be sorted based on a profile of the first viewer (e.g., basedon recommended ratings for the user) or may be sorted alphabetically, bydate of addition to the list, etc.

At step 1508, one of the bookmarks in the list is selected by theviewer.

At step 1510, in response to the selecting, the media programcorresponding to the selected bookmark is displayed to the viewer.

Recommendation Workflow

The recommendation engine 320 works together with the video player 304and ad server 316 as follows:

-   -   1. Player 304 calls Recommendation Service 320: When a user 132        begins watching some long form video (e.g., a source media        program), the media program player 304 calls (across a        network/cloud) the recommendation engine 320 and provides        information regarding the first viewer such as the user ID, the        ID of the current video the user is watching, as well as the        user's history of recommended media program exposure (this is        possible through the use of cookies);    -   2. Recommendation Engine 320 calls back to Player 304: Once the        recommendation engine 320 has received the request from the        player, the engine 320 will calculate (based on the information        regarding the first viewer) and deliver a list of media program        recommendation candidates (e.g., including a recommended media        program identification for each of the recommended media program        candidates) that could be delivered to the user 132;    -   3. Player passes info to Ad Server 316: When the user 132 is        about to reach the final ad pod (or other advertising break),        the Player 304 requests an advertisement from the Ad Server 316        while at the same time providing the ID of any recommended media        program ads that may be appropriate for the user;    -   4. Ad server 316 decides which ad or recommended media program        trailer to deliver: If there is one or more recommended media        program ads in the request from the player, the ad server 316        will then determine whether the recommended media program ad        should be served or if there is another ad that must take        precedence (often, a paid advertisement will be given priority        over a recommended media program ad). Thus, the ad server 316        selects an advertisements group comprising/consisting of a media        program trailer advertisement corresponding to one of the        recommended media program identifications and/or a non-trailer        advertisement. The ad server 316 is also responsible for        considering any recommended media program frequency caps or        other conditions which would make the recommended media ad        inappropriate (e.g., age constraints). In this regard,        advertisements may be prioritized based on expected revenue, age        constraints, frequency maximums for media program trailer        advertisements, etc.    -   5. Player 304 serves the Recommended Media Program Ad: If the ad        server determines an appropriate recommended media program, the        Player 304 will render the recommended media program ad to the        user and deliver the personalized message (e.g., during the        advertising break); and    -   6. Player records user feedback: Should the user interact with        the recommended media program ad, that information will be        recorded by the player (and may be transmitted and stored by the        recommendation engine). Such recordation/storage may take the        form of a bookmark for later viewing.

CONCLUSION

This concludes the description of the preferred embodiments of thepresent invention. The foregoing description of the preferred embodimentof the invention has been presented for the purposes of illustration anddescription. It is not intended to be exhaustive or to limit theinvention to the precise form disclosed. Many modifications andvariations are possible in light of the above teaching. It is intendedthat the scope of the invention be limited not by this detaileddescription, but rather by the claims appended hereto. The abovespecification, examples and data provide a complete description of themanufacture and use of the composition of the invention. Since manyembodiments of the invention can be made without departing from thespirit and scope of the invention, the invention resides in the claimshereinafter appended.

What is claimed is:
 1. A computer-implemented method for bookmarking afirst media program for subsequent viewing, comprising: playing a secondmedia program offered by a media program provider, the media programprovider offering media programs for playing, wherein advertisements areplayed during playing of the media programs in advertisement slots;during an advertisement slot of playing the second media program,displaying, in a first interface, a recommended media programadvertisement trailer that recommends the first media program when it isdetermined that the first media program should be recommended to a firstviewer for subsequent viewing instead of an advertisement using apriority assigned to the media program advertisement trailer and theadvertisement based on expected revenue, wherein expected revenue forthe advertisement is based on payment received from an advertiser andexpected revenue for the media program advertisement trailer is based onadvertisements served if the first viewer watches the first mediaprogram; accepting, via the first interface, input from the first viewerrequesting that the first media program be recorded as a bookmark in alist of one or more maintained bookmarks, wherein the list of one ormore maintained bookmarks identifies corresponding one or more mediaprograms offered by the media program provider for subsequent viewing bythe first viewer; recording a reference to the first media program withthe bookmark, wherein the first media program is different from therecommended media program advertisement trailer; displaying the list ofthe one or more maintained bookmarks; accepting input from the firstviewer selecting the bookmark in the list; and in response to theselecting, displaying the first media program to the first viewer usingthe reference.
 2. The computer-implemented method of claim 1, wherein adetermination that the first media program should be recommended forsubsequent viewing is based on information regarding the first viewer.3. The computer-implemented method of claim 1, wherein the list of oneor more maintained bookmarks comprises one or more bookmarks that havebeen added to the list by the first viewer.
 4. The computer-implementedmethod of claim 1, wherein the first interface comprises a search resultinterface that displays results for a search of media programs.
 5. Thecomputer-implemented method of claim 1, wherein the first interface isdisplayed on a cellular phone.
 6. The computer-implemented method ofclaim 1, wherein the first interface is displayed via a socialnetworking application.
 7. The computer-implemented method of claim 1,wherein the list of the one or more maintained bookmarks is sorted basedon a profile of the first viewer.
 8. The computer-implemented method ofclaim 1, wherein the list is maintained on a server across a networkfrom a media program player application.
 9. The method of claim 1,further comprising: determining recommended media program advertisementtrailers that recommend first media programs; sending the recommendedmedia program advertisement trailers to a service for determining whenone of the recommended media program advertisement trailers should beplayed over the advertisement during the advertisement slot of playingof the second media program based on analyzing of the recommended mediaprogram advertisement trailers and the advertisement, wherein theadvertisement does not recommend first media programs; and receiving theone of the recommended media program advertisement trailers for displayin the first interface.
 10. The method of claim 9, wherein the expectedrevenue for presenting a media program advertisement trailer in place ofthe advertisement is analyzed to determine when one of the media programadvertisement trailers should be played over the advertisement.
 11. Asystem for bookmarking a first media program for subsequent viewing in acomputer system comprising: a computer having a memory; and a mediaprogram player executing on the computer, wherein the media programplayer is configured to: play a second media program offered by a mediaprogram provider, the media program provider offering media programs forplaying, wherein advertisements are played during playing of the mediaprograms in advertisement slots; during an advertisement slot of playingthe second media program, display, in a first interface, a recommendedmedia program advertisement trailer that recommends the first mediaprogram when it is determined that the first media program should berecommended to a first viewer instead of an advertisement using apriority assigned to the media program advertisement trailer and theadvertisement based on expected revenue, wherein expected revenue forthe advertisement is based on payment received from an advertiser andexpected revenue for the media program advertisement trailer is based onadvertisements served if the first viewer watches the first mediaprogram; accept, via the first interface, input from the first viewerrequesting that the first media program be recorded as a bookmark in alist of one or more maintained bookmarks, wherein the list of one ormore maintained bookmarks identifies corresponding one or more mediaprograms offered by the media program provider for subsequent viewing bythe first viewer; record a reference to the first media program with thebookmark, wherein the first media program is different from therecommended media program advertisement trailer; display the list of theone or more maintained bookmarks; accept input from the first viewerselecting the bookmark in the list; and in response to the selecting,display the first media program to the first viewer using the reference.12. The system of claim 11, wherein a determination that the first mediaprogram should be recommended for subsequent viewing is based oninformation regarding the first viewer.
 13. The system of claim 11,wherein the list of one or more maintained bookmarks comprises one ormore bookmarks that have been added to the list by the first viewer. 14.The system of claim 11, wherein the first interface comprises a searchresult interface that displays results for a search of media programs.15. The system of claim 11, wherein the first interface is displayed viaa social networking application.
 16. The system of claim 11, wherein thelist of the one or more maintained bookmarks is sorted based on aprofile of the first viewer.
 17. The system of claim 11, wherein thelist is maintained on a server across a network from the media programplayer.
 18. A computer-implemented method for bookmarking a first mediaprogram for subsequent viewing, comprising: maintaining a list of one ormore maintained bookmarks, wherein the list of one or more maintainedbookmarks identifies corresponding one or more media programs forsubsequent viewing by a first viewer; during an advertisement slot ofplaying a second media program offered by a media program provider,receiving request input from the first viewer requesting that the firstmedia program be recorded as a bookmark in the list of one or moremaintained bookmarks, wherein the request input is received based onviewing a recommended media program advertisement trailer thatrecommends the first media program when it is determined that the firstmedia program should be recommended to the first viewer for subsequentviewing instead of an advertisement using a priority assigned to themedia program advertisement trailer and the advertisement based onexpected revenue, wherein expected revenue for the advertisement isbased on payment received from an advertiser and expected revenue forthe media program advertisement trailer is based on advertisementsserved if the first viewer watches the first media program; transmittingthe list of the one or more maintained bookmarks for display; receivingselect input from the first viewer selecting the bookmark in the list;and in response to the selecting, enabling the first media program to bedisplayed to the first viewer.
 19. The computer-implemented method ofclaim 18, further comprising: transmitting the recommended media programadvertisement trailer, wherein the request input requesting that thefirst media program be recorded as the bookmark is received via aninterface that displayed with the recommended media programadvertisement trailer.
 20. The computer-implemented method of claim 19,wherein the determination of the first media program is based oninformation regarding the first viewer.
 21. The computer-implementedmethod of claim 18, wherein the list of one or more bookmarks comprisesone or more maintained bookmarks that have been added to the list by thefirst viewer.
 22. The computer-implemented method of claim 18, furthercomprising: receiving a search request from the first viewer for mediaprograms; and in response to the search request, transmitting a searchresult that is displayed to the first viewer, wherein the search resultincludes an identification of the first media program.
 23. Thecomputer-implemented method of claim 18, wherein the request input andselect input are received from a cellular phone.
 24. Thecomputer-implemented method of claim 18, wherein the request input andselect input are received via a social networking application.
 25. Thecomputer-implemented method of claim 18, wherein the list of the one ormore maintained bookmarks is sorted based on a profile of the firstviewer.
 26. The computer-implemented method of claim 18, wherein thelist is maintained on a server across a network from a media programplayer application.
 27. A system for bookmarking a media program forsubsequent viewing in a computer system comprising: a computer having amemory; and a bookmark maintenance engine executing on the computer,wherein the bookmark maintenance engine is configured to: maintain alist of one or more maintained bookmarks, wherein the list of one ormore maintained bookmarks identifies corresponding one or more mediaprograms for subsequent viewing by a first viewer; during anadvertisement slot of playing a second media program offered by a mediaprogram provider, receive request input from the first viewer requestingthat a first media program be recorded as a bookmark in the list of oneor more maintained bookmarks, wherein the request input is receivedbased on viewing a recommended media program advertisement trailer thatrecommends the first media program when it is determined that the firstmedia program should be recommended to the first viewer for subsequentviewing instead of an advertisement using a priority assigned to themedia program advertisement trailer and the advertisement based onexpected revenue, wherein expected revenue for the advertisement isbased on payment received from an advertiser and expected revenue forthe media program advertisement trailer is based on advertisementsserved if the first viewer watches the first media program; transmit thelist of the one or more maintained bookmarks for display; receive selectinput from the first viewer selecting the bookmark in the list; and inresponse to the receipt of the select input, enable the first mediaprogram to be displayed to the first viewer.
 28. The system of claim 27,wherein the bookmark maintenance engine is further configured to:transmit the recommended media program advertisement trailer, whereinthe request input requesting that the first media program be recorded asthe bookmark is received via an interface that displayed with therecommended media program advertisement trailer.
 29. The system of claim27, wherein the determination of the first media program is based oninformation regarding the first viewer.
 30. The system of claim 27,wherein the list of one or more maintained bookmarks comprises one ormore bookmarks that have been added to the list by the first viewer. 31.The system of claim 27, wherein the bookmark maintenance engine isfurther configured to: receive a search request from the first viewerfor media programs; and in response to the search request, transmit asearch result that is displayed to the first viewer, wherein the searchresult includes an identification of the first media program.
 32. Thesystem of claim 27, wherein the request input and select input arereceived from a cellular phone.
 33. The system of claim 27, wherein therequest input and select input are received via a social networkingapplication.
 34. The system of claim 27 wherein the list of the one ormore maintained bookmarks is sorted based on a profile of the firstviewer.
 35. The system of claim 27, wherein the list is maintained on aserver across a network from a media program player application.
 36. Amethod comprising: determining a set of first media programs torecommend for subsequent viewing for a first viewer; determiningrecommended media program advertisements that recommend the set of firstmedia programs; determining when one of the recommended media programadvertisements should be played over second advertisements during anadvertisement slot of playing of a second media program based on using apriority assigned to the recommended media program advertisements andthe second advertisements based on expected revenue, wherein expectedrevenue for the second advertisements is based on payment received froman advertiser and expected revenue for a recommended media programadvertisement is based on advertisements served if the first viewerwatches a first media program; and sending the one of the recommendedmedia program advertisements for display in a first interface during theadvertisement slot of playing of the second media program; receiving areference to the first media program for a bookmark based on an inputfrom the first viewer requesting that the first media program berecorded as a bookmark in a list of one or more maintained bookmarks;and storing the reference in association with the list of one or moremaintained bookmarks, wherein the list of one or more maintainedbookmarks identifies corresponding one or more media programs forsubsequent viewing by the first viewer.
 37. The method of claim 36,further comprising: receiving input from the first viewer selecting thebookmark in the list; determining the first media program using thereference; and sending the first media program to the first viewer.